1. Field of the Invention
The present invention relates in general to in-circuit emulators, and in particular to a system permitting conventional software applications to easily communicate with an in-circuit emulator.
2. Description of Related Art
When developing and debugging a microprocessor-based system it is helpful to monitor and the input/output (I/O) bus of its microprocessor and to record data representing the succession of data, address and control signals appearing on that bus. Such data can be analyzed by diagnostic software running on an external host computer to determine the behavior of the microprocessor and other components of the target system in which the microprocessor is installed. Many microprocessors include diagnostic control terminals enabling a host computer accessing those terminals to carry out such diagnostic activities such as halting or stepping microprocessor operation and viewing or altering contents of its internal registers. However when a microprocessor is installed in a socket on a circuit board in its target system there is usually no provision for providing an external host computer with access to the microprocessor""s bus or diagnostic control terminals.
A typical xe2x80x9cin-circuit emulatorxe2x80x9d (ICE) includes a connector that plugs into the socket on a target system circuit normally holding the microprocessor. The target system""s microprocessor is installed in another socket within the emulator, and the emulator links the connector to its internal microprocessor socket so that the microprocessor can behave as if it were plugged into its normal socket within the target system. An emulator includes circuits that can monitor the microprocessor""s I/O bus, acquire and store data representing a sequence of signal states appearing on that bus, and make that stored data available to software running on a host computer. A typical in-circuit emulator also includes circuits that allow the host computer to access the microprocessor""s diagnostic control terminal and to directly read or write access memories within the target system via the microprocessor""s bus. An emulator may also include xe2x80x9coverlayxe2x80x9d memory that can be substituted for, or augment, target system memory that the microprocessor normally accesses.
Although a variety of software tools running in a host computer can configure and control an in-circuit emulator and can acquire and process the various types of data it collects, such software tools must be custom adapted to communicate with the emulator. Thus while an engineer developing and debugging target system microprocessor hardware or software might like to employ conventional, general purpose data processing software, such as for example a spreadsheet, to control an emulator and to obtain and process its output data, general purpose data processing software is not adapted to communicate directly with an in-circuit emulator.
What is needed is a system for allowing conventional data processing software to easily communicate with an in-circuit emulator.
An interface system in accordance with the present invention enables conventional software applications to easily communicate with an in-circuit emulator.
In accordance with one aspect of the invention, the interface system represents the in-circuit emulator as a component object model (COM) object. The COM object includes a set of interfaces, each including methods for carrying out various in-circuit emulator programming and data transfer functions. To communicate with an emulator, a software application links to an instance of the emulator""s COM object and thereafter may make calls to the methods included in the object""s interfaces. The client application and the COM object make calls and returns simply by writing data to a reserved area of memory. This makes all other aspects of the COM object implementation transparent to the client application. By providing a COM object to handle direct communications with an in-circuit emulator, any conventional software application capable of communication via conventional COM protocol can indirectly control and communicate with an in-circuit emulator.
In accordance with another aspect of the invention, the in-circuit emulator includes a network interface allowing a COM object running on any computer connected to the network to communicate with the in-circuit emulator. Thus using conventional COM protocol, an application running on any platform connected to the network can communicate with the in-circuit emulator via remote or local procedures calls to an instance of the in-circuit emulator""s corresponding COM object object.
In accordance with a further aspect of the invention, the interface system permits a first application linking to an instance of an in-circuit emulator""s COM object to optionally block other applications running elsewhere in the network from linking to other instances of that COM object to prevent conflicts in control over the in-circuit emulator.
It is accordingly an object of the invention to provide an interface system for an in-circuit emulator permitting conventional software applications to easily communicate with the in-circuit emulator.
The concluding portion of this specification particularly points out and distinctly claims the subject matter of the present invention. However those skilled in the art will best understand both the organization and method of operation of the invention, together with further advantages and objects thereof, by reading the remaining portions of the specification in view of the accompanying drawing(s) wherein like reference characters refer to like elements.